AWS Config Aggregator の ARN は AWS CLI で確認しよう
これは自分に対しての戒め記事です。
やったこと(NG 例)
hogehoge-aggregator という名前の Config Aggregator がありました。
それに対しアカウントの追加操作ができるよう既存の IAM ロールに config:PutConfigurationAggregator
を付与しようとしていました。
その際に私が記述した設定は以下になります。
# NG 例
- Resource:
- !Sub arn:aws:config:ap-northeast-1:${AWS::AccountId}:config-aggregator/hogehoge-aggregator
Action: "config:PutConfigurationAggregator"
Effect: "Allow"
これは NG の例です。権限が無いため操作できません。
「なんで操作できないんだよ!」と藤原竜也ばりに叫ぶことになるでしょう。
なにがダメだったか
ARN を指定していますが、これは正しい ARN ではないからです。
そのため意図したリソースに対しての操作が権限不足となり失敗しました。
なぜこのように設定したか
AWS コンソール画面で Config Aggregator のページを見ると以下のように表示されます。
そうです、ARN が記載されていないのです。
そのため私は Config Aggregator の ARN のサンプルとして拾ってきた文字列を編集し、操作対象のアグリゲーター名を付けた arn:aws:config:ap-northeast-1:${AWS::AccountId}:config-aggregator/hogehoge-aggregator
を指定したのです。(過ち)
ARN は AWS CLI で確認する
コンソールで見えないなら CLI を使えばいいじゃないというごくごく普通の解決策です。
describe-configuration-aggregators
コマンドがあるのでそれを使います。
aws configservice describe-configuration-aggregators --configuration-aggregator-names hogehoge-aggregator
{
"ConfigurationAggregators": [
{
"ConfigurationAggregatorName": "hogehoge-aggregator",
"ConfigurationAggregatorArn": "arn:aws:config:ap-northeast-1:123456789012:config-aggregator/config-aggregator-brqvipl0",
"AccountAggregationSources": [
{
"AccountIds": [
"123456789012"
],
"AllAwsRegions": false,
"AwsRegions": [
"ap-northeast-1"
]
}
],
"CreationTime": "2024-07-02T20:49:19.082000+09:00",
"LastUpdatedTime": "2024-07-02T20:49:19.083000+09:00"
}
]
}
正しい ARN は arn:aws:config:ap-northeast-1:123456789012:config-aggregator/config-aggregator-brqvipl0
でした。
後半部分はランダムな文字列となってまね。
最初に NG の例として示した設定は以下のようにすることで無事にアカウントの追加操作ができるようになりました。
# OK 例
- Resource:
- !Sub arn:aws:config:ap-northeast-1:${AWS::AccountId}:config-aggregator/config-aggregator-brqvipl0
Action: "config:PutConfigurationAggregator"
Effect: "Allow"
最後に
コンソールに ARN が記載されていない場合は AWS CLI を用いて ARN を確認しましょう。
この記事によって同じような間違いをする人が減れば幸いです。